package com.douyang.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.douyang.VO.AuthClientListVO;
import com.douyang.VO.AuthClientVO;
import com.douyang.base.model.PageResult;
import com.douyang.base.model.Result;
import com.douyang.base.model.UserBaseInfo;
import com.douyang.dto.ApplyClientDTO;
import com.douyang.dto.AuthClientStatusDTO;
import com.douyang.dto.GetAuthClientListDTO;
import com.douyang.dto.OauthLoginDTO;
import com.douyang.pojo.AuthClient;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xiaoma
 * @since 2025-04-04
 */
public interface AuthClientService extends IService<AuthClient> {

    PageResult<AuthClientListVO> getAuthClientList(GetAuthClientListDTO getAuthClientListDTO);

    void appClient(ApplyClientDTO applyClientDTO);

    void audit(AuthClientStatusDTO authClientStatusDTO);

    PageResult<AuthClientListVO> getMyApplications(GetAuthClientListDTO getAuthClientListDTO);

    UserBaseInfo doLogin(OauthLoginDTO oauthLoginDTO);

    AuthClientVO getAppInfo(String hostName);

    Result<String> authorize();


    String getTokenByCode(String code);

    UserBaseInfo getUserInfoByToken(String token);
}
